var prezzo_congresso=new Array();
var prezzo_corso=new Array();
var prezzo_hotel=new Array();

prezzo_congresso[0]=180.00;
prezzo_congresso[1]=200.00;
prezzo_congresso[2]=250.00;
prezzo_congresso[3]=300.00;
prezzo_congresso[4]=80.00;
prezzo_congresso[5]=80.00;

prezzo_corso[0]=50.00;
prezzo_corso[1]=60.00;
prezzo_corso[2]=50.00;
prezzo_corso[3]=60.00;

prezzo_hotel[0]=170.00;
prezzo_hotel[1]=210.00;

function aggiorna_totale() {
	subtotale1 = 0;
	subtotale2 = 0;
	subtotale3 = 0;
	subtotale4 = 0;
	totale = 0;
	
	for(n=0;n<=5;n++) {
		if(document.adesione.quote_congresso[n].checked) {
			subtotale1 = subtotale1 + prezzo_congresso[n];
		}
	}
	
	for(n=0;n<=3;n++) {
		if(document.adesione.quote_corso[n].checked) {
			subtotale1 = subtotale1 + prezzo_corso[n];
		}
	}
	document.adesione.subtotale1.value = currency(subtotale1);
	
	if ((document.adesione.colazione_lavoro.checked) && (document.adesione.nr_persone_colazione.value!='')) {
		subtotale2 = parseFloat(document.adesione.nr_persone_colazione.value * 35);
	} else {
		subtotale2 = 0;
	}
	document.adesione.subtotale2.value = currency(subtotale2);
	
	for(n=0;n<=1;n++) {
		if(document.adesione.quote_hotel[n].checked) {
			subtotale3 = prezzo_hotel[n];
			subtotale4 = 20;
			if ((document.adesione.data_di_arrivo.disabled) && (document.adesione.data_di_arrivo.value == "") && (document.adesione.data_di_partenza.value == "")) {
				document.adesione.data_di_arrivo.disabled=false;
				document.adesione.data_di_arrivo.value="24/05/2007";
				document.adesione.data_di_partenza.disabled=false;
				document.adesione.data_di_partenza.value="26/05/2007";
			}
		}
	}

	if (((document.adesione.data_di_arrivo.value).length == 10) && ((document.adesione.data_di_partenza.value).length == 10)) {
		if (get_day_diff(document.adesione.data_di_arrivo.value, document.adesione.data_di_partenza.value)<1) {
			alert("Le date di arrivo e/o partenza sono errate, quindi sono state messe quelle predefinite.");
			document.adesione.data_di_arrivo.value="24/05/2007";
			document.adesione.data_di_partenza.value="26/05/2007";
		} else {
			notti=get_day_diff(document.adesione.data_di_arrivo.value, document.adesione.data_di_partenza.value);
			document.adesione.numero_notti.value=notti;
			subtotale3=parseFloat(subtotale3*notti);
		}
	}
	
	document.adesione.subtotale3.value = currency(subtotale3);
	document.adesione.subtotale4.value = currency(subtotale4);		

	totale = totale + subtotale1 + subtotale2 + subtotale3 + subtotale4;
	document.adesione.totale.value = currency(totale);
	document.adesione.totale_pagamento.value = currency(totale);
}

function count_char(objInput, objCounter, maxInput, msgError) {
	if (objInput.value.length > maxInput) {
		alert(msgError);
		objInput.value=objInput.value.substring(0,maxInput);
	}

	objCounter.value=maxInput - objInput.value.length;
}

function in_array (v, a) {
	var found=false;
	var i=0;
	
	while ((!found) && (i<a.length)) {
		found=(v==a[i]);
		i++;
	}
	
	return found;
}

function scanint (campo, evn) {
	var valori=['.', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
	var brwGecko=true;
	var kcode;

	if (!campo.readOnly) {
		if (!evn) {
			try {
				var evn=window.event;
				kcode=window.event.keyCode;
			} catch (err) {
				alert ('Evento non trovato (scanint).');
				return false;
			}
		}
	
		if (evn.keyCode) {
			kcode=evn.keyCode;
			brwGecko=false;
		} else {
			kcode=evn.which;
		}
	
		var ccode=String.fromCharCode(kcode);
		var inarrayResult=in_array(ccode, valori);
	
		if (!inarrayResult && ((kcode!=8) && (kcode!=13))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	
		if (ccode=='-') {
			if (campo.value.indexOf('-')<0) {
				campo.value='-'+campo.value;
			} else { // sentire se sta cosa piace
				campo.value=campo.value.substr(1);
			}
			
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	}
	
	return true;
}

function checkfile (campo, tipi_file) {
	var err=0;
	var ext;
	var a=[];
	var b;
	var i;
	
	if (campo.value=='') {
		err=1;
	} else {
		a=campo.value.split('.');
		ext=a[a.length-1];
		ext=ext.toUpperCase();
		err=1;
		
		if (tipi_file!='*') {
			for (i=0;i<tipi_file.length;i++) {
				if (ext==tipi_file[i].toUpperCase()) {
					err=0;
				}
			}
		} else {
			err=0;
		}
	}

	return err==0;
}

function checkfield(form) {
	var errore=false;
	var msg="";

	for (n=0;n<form.elements.length;n++) {
		switch (form.elements[n].name){
		case "nome":
		case "cognome":
		case "indirizzo":
		case "prov":
		case "nazione":
		case "telefono": if (form.elements[n].value=="") {
							msg='"'+form.elements[n].name+'" (Dati Anagrafici)';
							errore=true;
						 }
						 break;
		case "citta": if (form.elements[n].value=="") {
							msg='"cittā" (Dati Anagrafici)';
							errore=true;
					  }
					  break;
		case "cap": if ((form.elements[n].value).length!=5) {
						msg='"'+form.elements[n].name+'" (Dati Anagrafici)';
						errore=true;
					}
					break;
		case "email": if ((form.elements[n].value).indexOf("@") == -1){
							msg=msg='"'+form.elements[n].name+'" (Dati Anagrafici)';
							errore=true;
					  }
					  break;
		case "istituto":
		case "indirizzo_prof":
		case "prov_prof":
		case "nazione_prof":
		case "telefono_prof": if (form.elements[n].value=="") {
									msg='"'+(form.elements[n].name).replace("_prof","")+'" (Dati Professionali)';
									errore=true;
							  }
							  break;
		case "cap_prof": if ((form.elements[n].value).length!=5) {
							msg='"'+(form.elements[n].name).replace("_prof","")+'" (Dati Professionali)';
							errore=true;
						 }
						 break;
		case "citta_prof": if (form.elements[n].value=="") {
							msg='"cittā" (Dati Professionali)';
							errore=true;
					  	   }
					   	   break;
		case "email_prof": if ((form.elements[n].value).indexOf("@") == -1){
								msg='"'+(form.elements[n].name).replace("_prof","")+'" (Dati Professionali)';
						   		errore=true;
					       }
					       break;
		case "testo_abstract": if (checkfile(form.elements[n],["DOC"])==false){
									msg='"Abstract"';
									errore=true;
							   }
							   break;
  		case "curriculum": if (form.elements[n].value=="") {
								msg='"CURRICULUM VITAE DEL RELATORE"';
								errore=true;
						   }
						   break;
		}
		
		if (errore) {
			break;
		}
	}
	
	if (msg==""){
		for (i=0;i<=1;i++){
			if (form.contributo[i].checked){
					break;
			} else {
					 if (i==1){
							msg='"Desidero presentare un/a"';
							errore=true;
					 }
			}
		}
	}
	
	if (errore) {
		alert('Il campo '+msg+' č obbligatorio.');
		return false;
	}
	
	return true;
}

function scandata (campo, evn) {
	return scandate (campo, evn);
}

function scandate (campo, evn) {
	var valori=['0','1','2','3','4','5','6','7','8','9'];
	var brwGecko=true;
	var kcode;

	if (!campo.readOnly) {
		if (!evn) {
			try {
				var evn=window.event;
				kcode=window.event.keyCode;
			} catch (err) {
				alert ('Evento non trovato (scandata).');
				return false;
			}
		}
	
		if (evn.keyCode) {
			kcode = evn.keyCode;
			brwGecko=false;
		} else {
			kcode = evn.which;
		}
	
		var inarrayResult=in_array(String.fromCharCode(kcode), valori);
	
		if (!((inarrayResult) || (String.fromCharCode(kcode)=="/") || (String.fromCharCode(kcode)==".") || (kcode==13))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
		
		if (String.fromCharCode(kcode)==".") {
			if (!brwGecko) {
				window.event.keyCode="/".charCodeAt (0);
			}
		}
		
		if ((campo.value.length+1==3)) {
			campo.value+="/";
		}
		
		if ((campo.value.length+1==6)) {
			campo.value+="/";
		}
		
		if ((String.fromCharCode(kcode)=="/") && ((campo.value.length==3) || (campo.value.length==6) || (campo.value.length<2) || ((campo.value.length>3) && (campo.value.length<5)))) {
			if (!brwGecko) {
				window.event.returnValue=0;
			}
			return false;
		}
	}
	
	return true;
}

function currency(anynum) {
   anynum = eval(anynum);
   workNum = Math.abs((Math.round(anynum*100)/100));
   workStr = "" + workNum;
   if (workStr.indexOf(".") == -1) { workStr+=".00"; }
   dStr = workStr.substr(0,workStr.indexOf("."));
   dNum = dStr-0;
   pStr = workStr.substr(workStr.indexOf("."));
   while (pStr.length<3){pStr+="0"}

   if (dNum >= 1000) {
      dLen = dStr.length;
      dStr = parseInt("" + (dNum/1000)) + "" + dStr.substring(dLen-3,dLen);
   }

   if (dNum >= 1000000) {
      dLen = dStr.length;
      dStr = parseInt("" + (dNum/1000000)) + "" + dStr.substring(dLen-7,dLen);
   }
   retval = dStr + pStr;

   if (anynum < 0) { retval = "("+retval+")" };
   return retval;
}

function get_day_diff(data_da, data_a) {
	data_da=data_da.split('/');
	data_a=data_a.split('/');
	var from=new Date(data_da[2], data_da[1], data_da[0], 12 , 0, 0).getTime();
	var to=new Date(data_a[2], data_a[1], data_a[0], 12 , 0, 0).getTime();
	return (((to-from)/86400)/1000);
}

function comparedate(prima, seconda) {
	var err=0;
	var data1;
	var data2;

	day1=prima.substring(0, 2)// day
	month1=prima.substring(3, 5)// month
	year1=prima.substring(6, 10)// year

	day2=seconda.substring(0, 2)// day
	month2=seconda.substring(3, 5)// month
	year2=seconda.substring(6, 10)// year

	data1=year1+month1+day1;
	data2=year2+month2+day2;
	
	if (data1>data2) {
		err=1;
	}

	return err==0;
}

function checkdate(a, empty) {
	var err=0;
	var dateseparator="/";
	
	if (a.length==10) {
		var day=a.substring(0, 2);// day
		var sep1=a.substring(2, 3);// '/'
		var month=a.substring(3, 5);// month
		var sep2=a.substring(5, 6);// '/'
		var year=a.substring(8, 10);// year
	
		if ((month<1) || (month>12)) {
			err=1;
		}
		
		if ((sep1!=dateseparator) || (sep2!=dateseparator)) {
			err=1;
		}
		
		if ((day<1) || (day>31)) {
			err=1;
		}
		
		if ((year<0) || (year>99)) {
			err=1;
		}
		
		if ((month==4) || (month==6) || (month==9) || (month==11)) {
			if (day==31) {
				err=1;
			}
		}

		if (month==2) {
			if ((day>29) || ((day==29) && ((year%4)!=0))) {
				err=1;
			}
		}
	} else {
		if ((a.length==0) && empty) {
			err=0;
		} else {
			err=1;
		}
	}
	
	return err==0;
}

function checkfield_adesione(frm) {
	// Campi privati
	var nome = frm.nome.value;
	var cognome = frm.cognome.value;
	var indirizzo = frm.indirizzo.value;
	var citta = frm.citta.value;
	var prov = frm.prov.value;
	var cap = frm.cap.value;
	var nazione = frm.nazione.value;
	var telefono = frm.telefono.value;
	var email = frm.email.value;
	
	// Campi professionali
	var istituto = frm.istituto.value;
	var indirizzo_prof = frm.indirizzo_prof.value;
	var citta_prof = frm.citta_prof.value;
	var prov_prof = frm.prov_prof.value;
	var cap_prof = frm.cap_prof.value;
	var nazione_prof = frm.nazione_prof.value;
	var telefono_prof = frm.telefono_prof.value;	
	
	// Campi fattura
	var intestazione_fattura = frm.intestazione_fattura.value;
	var indirizzo_fattura = frm.indirizzo_fattura.value;
	var cf = frm.codice_fiscale_o_partita_iva.value;

	// Campi carta di credito
	var codice_sicurezza = frm.codice_sicurezza.value;
	var intestatario_pagamento = frm.intestatario_pagamento.value;
	var nrcarta_pagamento = frm.nr_carta_pagamento.value;
	var mesescadenzacarta_pagamento = frm.mesescadenzacarta_pagamento.value;
	var annoscadenzacarta_pagamento = frm.annoscadenzacarta_pagamento.value;
	
	if (nome.length < 3) {
		alert("Prego, inserire il nome (Dati Privati).");
		return false;
	}
	
	if (cognome.length < 3) {
		alert("Prego, inserire il cognome (Dati Privati).");
		return false;
	}

	if (indirizzo.length < 3) {
		alert("Prego, inserire l'indirizzo (Dati Privati).");
		return false;
	}

	if (citta.length < 3) {
		alert("Prego, inserire la cittā (Dati Privati).");
		return false;
	}

	if (prov == -1) {
		alert("Prego, inserire la provincia (Dati Privati).");
		return false;
	}

	if (cap.length < 3) {
		alert("Prego, inserire il cap (Dati Privati).");
		return false;
	}

	if (nazione.length < 3) {
		alert("Prego, inserire la nazione (Dati Privati).");
		return false;
	}

	if (telefono.length < 3) {
		alert("Prego, inserire il telefono (Dati Privati).");
		return false;
	}

	if (email.indexOf("@") == -1) {
		alert("Prego, inserire l'email (Dati Privati).");
		return false;
	}
	
	if (istituto.length < 3) {
		alert("Prego, inserire l'istituto (Dati Professionali).");
		return false;
	}
	
	if (indirizzo_prof.length < 3) {
		alert("Prego, inserire l'indirizzo (Dati Professionali).");
		return false;
	}

	if (citta_prof.length < 3) {
		alert("Prego, inserire la cittā (Dati Professionali).");
		return false;
	}

	if (prov_prof == -1) {
		alert("Prego, inserire la provincia (Dati Professionali).");
		return false;
	}

	if (cap_prof.length < 3) {
		alert("Prego, inserire il cap (Dati Professionali).");
		return false;
	}

	if (nazione_prof.length < 3) {
		alert("Prego, inserire la nazione (Dati Professionali).");
		return false;
	}

	if (telefono_prof.length < 3) {
		alert("Prego, inserire il telefono (Dati Professionali).");
		return false;
	}

	if (intestazione_fattura.length < 3) {
		alert("Prego, inserire l'intestazione della fattura.");
		return false;
	}

	if (indirizzo_fattura.length < 3) {
		alert("Prego, inserire l'indirizzo della fattura.");
		return false;
	}

	if ((cf.length != 16) && (cf.length != 11)) {
		alert("Prego, il codice fiscale o la partita iva.");
		return false;
	}

	if (document.adesione.data_di_arrivo.disabled == false) {
		if (((document.adesione.data_di_arrivo.value).length != 10) || ((document.adesione.data_di_partenza.value).length != 10) || (get_day_diff(document.adesione.data_di_arrivo.value, document.adesione.data_di_partenza.value)<1)) {
			alert("Le date di arrivo e/o partenza sono errate, quindi sono state messe quelle predefinite.\r\nControllare prima di inviare il modulo, grazie.");
			document.adesione.data_di_arrivo.value="24/05/2007";
			document.adesione.data_di_partenza.value="26/05/2007";
			aggiorna_totale();
			return false;
		}
	}
	
	if ((document.adesione.nr_persone_colazione.disabled == false) && ((document.adesione.nr_persone_colazione.value == "") || (document.adesione.nr_persone_colazione.value < 1) )) {
		alert("Prego, inserire il numero di persone partecipanti alla colazione di lavoro del 25/05/07.");
		return false;
	}
	
	for (n=0;n<=4;n++) {
		if(document.adesione.tipo_carta_credito[n].checked) {
			selezione=n;
			break;
		} else {
			if(n==4) {
				alert("Prego, selezionare il tipo di carta di credito.");
				return false;
			}
		}
	}
	
	if ((codice_sicurezza.length!=4) && (selezione==3)) {
		alert("Controllare il codice di sicurezza (digitare le 4 cifre poste sul retro della carta).");
		return false;
	}
	
	if ((codice_sicurezza.length!=3) && ((selezione==0) || (selezione==1) || (selezione==2) || (selezione==4))) {
		alert("Controllare il codice di sicurezza (digitare le 3 cifre poste sul retro della carta).");
		return false;
	}

	if (intestatario_pagamento.length < 3) {
		alert("Prego, inserire l'intestatario della carta.");
		return false;
	}

	if ((selezione==3) && (nrcarta_pagamento.length!=15)) {
		alert("Prego, inserire il numero della carta.");
		return false;
	}
	
	if (((selezione==0) || (selezione==1) || (selezione==2)) && (nrcarta_pagamento.length!=16)) {
		alert("Prego, inserire il numero della carta.");
		return false;			
	}
	
	if (mesescadenzacarta_pagamento.length != 2) {
		alert("Prego, inserire il mese di scadenza della carta.");
		return false;
	}
	
	if (annoscadenzacarta_pagamento.length != 4) {
		alert("Prego, inserire l'anno di scadenza della carta.");
		return false;
	}

	return true;
}
